AAA ASCII-коррекция при сложении

Флаги

O D I T S Z A P C
?       ? ? * ? * 

Команда:

AAA

Логика:

if (AL & 0Fh) > 9 or (AF = 1) then
                         AL = AL + 6
                         AH = AH + 1
                         AF = 1;   CF = 1
                     else
                         AF = 0;   CF = 0
                         AL = AL & 0Fh

Переводит число, записанное в младшем полубайте аккумулятора AL в число, представленное в неупакованном формате в двоично-десятичном коде (старший полубайт AL содержит нули).

Операнды Такт байты (слова)ОбращенияБайтыПример
нет операндов4 - 1AAA

Если младший полубайт в AL больше, чем 9 или дополнительный флаг переноса AF установлен (=1), то эта команда преобразовывает содержимое AL в его неупакованный двоично-десятичный код путем прибавления числа 6 к AL, увеличения AH на 1 и установки признака переноса CF и дополнительного признака переноса AF. Старший полубайт AL сбрасывается.

Примечания:
В неупакованном двоично-десятичном коде каждому байту соответствует одна цифра, и AH содержит более значащую цифру, а AL - менее значащую.

Hosted by uCoz